package com.mfs.proxy.core.server.registry;

import com.mfs.proxy.core.client.ProxyClient;

/**
 * 代理客户段注册中心顶级接口
 * @author mfs
 * @date 2023/7/1 14:19
 **/
public interface ProxyClientRegistry {
    /**
     * 注册代理客户端
     * 代理ip和代理端口是联合主键
     *
     * @param proxyIp 代理ip
     * @param proxyPort 代理端口
     * @param proxyClient 代理客户端对象
     * @return 成功/失败
     * */
    boolean register(String proxyIp, Integer proxyPort, ProxyClient proxyClient);

    /**
     * 通过代理地址注销代理客户端
     *
     * @param proxyIp 代理ip
     * @param proxyPort 代理端口
     * @return 成功/失败
     * */
    boolean unregister(String proxyIp, Integer proxyPort);

    /**
     * 通过代理地址获取提供服务的代理客户端
     *
     * @param proxyIp 代理ip
     * @param proxyPort 代理端口
     * @return ProxyClient or null
     * */
    ProxyClient checkout(String proxyIp, Integer proxyPort);
}
